#pragma once

#include <string>

enum TokenType {
    NUMBER,  // 123
    WORD,  // hello

    PLUS,  // +
    MINUS, // -
    STAR,  // *
    SLASH, // /

    LPAR,  // (
    RPAR,  // )

    EQU,  // =

    //keywords
    RETURN,
    TYPEDEF,

    END_OF_FILE
};

struct Token {
public:
    Token(TokenType type);
    Token(TokenType type, std::string value);
    TokenType get_type();
    std::string get_value();
    std::string str();
private:
    TokenType type;
    std::string value;
};
